Everything about Differentiated Services totally explained
This article is on differentiated services within communication networks. For a related concept used as a design pattern for business applications (including smart services and context-aware services) see Differentiated service (design pattern).
Differentiated Services or
DiffServ is a
computer networking architecture that specifies a simple, scalable and coarse-grained mechanism for classifying, managing network traffic and providing
Quality of Service (
QoS) guarantees on modern
IP networks. DiffServ can, for example, be used to provide
low-latency, guaranteed service (
GS) to critical network traffic such as
voice or
video while providing simple
best-effort traffic guarantees to non-critical services such as
web traffic or
file transfers.
Background
Since modern data networks carry many different types of services, including voice, video, streaming music, web pages and
email, many of the proposed QoS mechanisms that allowed these services to co-exist were both complex and failed to scale to meet the demands of the public Internet. In 1998, the
IETF published RFC 2475 (An Architecture for Differentiated Services). Today, DiffServ has largely supplanted other Layer 3 QoS mechanisms (such as
IntServ) as the primary protocol routers use to provide different levels of service.
Traffic Management Mechanisms
DiffServ is a
coarse-grained,
class-based mechanism for traffic management. In contrast,
IntServ is a
fine-grained,
flow-based mechanism.
DiffServ operates on the principle of
traffic classification, where each data packet is placed into a limited number of traffic classes, rather than differentiating network traffic based on the requirements of an individual flow. Each
router on the network is configured to differentiate traffic based on its class. Each traffic class can be managed differently, ensuring preferential treatment for higher-priority traffic on the network.
The DiffServ model doesn't make judgement on what types of traffic should be given priority treatment since that's left up to the network operator. DiffServ simply provides a framework to allow classification and differentiated treatment. DiffServ does recommend a standardized set of traffic classes (discussed below) to make interoperability between different networks and different vendors' equipment simpler.
DiffServ relies on a mechanism to
classify and
mark packets as belonging to a specific class. DiffServ-aware routers implement
Per-Hop Behaviors (PHBs), which define the packet forwarding properties associated with a class of traffic. Different PHBs may be defined to offer, for example, low-loss, low-latency forwarding properties or best-effort forwarding properties. All the traffic flowing through a router that belongs to the same class is referred to as a
Behavior Aggregate (BA).
DiffServ Domain
A group of routers that implement common, administratively defined DiffServ policies are referred to as a
DiffServ Domain.
Classification and Marking
Network traffic entering a DiffServ domain is subjected to classification and conditioning. Traffic may be classified by many different parameters, such as source address, destination address or traffic type and assigned to a specific traffic class. Traffic classifiers may honor any DiffServ markings in received packets or may elect to ignore or override those markings. Because network operators want tight control over volumes and type of traffic in a given class, it's very rare that the network honors markings at the ingress to the DiffServ domain. Traffic in each class may be further conditioned by subjecting the traffic to rate limiters, traffic policers or shapers.
Per-Hop Behavior
The Per-Hop Behavior (PHB) is indicated by encoding a 6-bit value—called the Differentiated Services Code Point (
DSCP)—into the 8-bit Differentiated Services (DS) field of the
IP packet header. The DS field is the same as the
TOS field, and
ECN occupies the upper 2 bits.
In theory, a network could have up to 64 (for example
) different traffic classes using different markings in the DSCP. The DiffServ RFCs recommend, but don't require, certain encodings. This gives a network operator great flexibility in defining traffic classes. In practice, however, most networks use the following commonly-defined Per-Hop Behaviors:
- Default PHB—which is typically best-effort traffic
- Expedited Forwarding (EF) PHB—for low-loss, low-latency traffic
- Assured Forwarding (AF)—behavior group
- Class Selector PHBs—which are defined to maintain backward compatibility with the IP Precedence field.
Default PHB
A default PHB is the only required behavior. Essentially, any traffic that doesn't meet the requirements of any of the other defined classes is placed in the default PHB. Typically, the default PHB has best-effort forwarding characteristics. The recommended DSCP for the default PHB is '000000'.
Expedited Forwarding (EF) PHB
The IETF defines Expedited Forwarding in RFC 3246. The EF PHB has the characteristics of low delay, low loss and low jitter. These characteristics are suitable for voice, video and other realtime services. EF traffic is often given
strict priority queuing above all other traffic classes. Because an overload of EF traffic will cause queuing delays and affect the jitter and delay tolerances within the class, EF traffic is often strictly controlled through admission control, policing and other mechanisms. Typical networks will limit EF traffic to no more than 30%—and often much less—of the capacity of a link.
Assured Forwarding (AF) PHB Behavior Group
The IETF defines the Assured Forwarding behavior group in RFC 2597. Assured forwarding allows the operator to provide assurance of delivery as long as the traffic doesn't exceed some subscribed rate. Traffic that exceeds the subscription rate faces a higher probability of being dropped if congestion occurs.
The AF behavior group defines four separate AF classes. Within each class, packets are given a drop precedence (high, medium or low). The combination of classes and drop precedence yields twelve separate DSCP encodings from AF11 through AF43 (see table)
|
Class 1 |
Class 2 |
Class 3 |
Class 4 |
| Low Drop | AF11 |
AF21 |
AF31 |
AF41
|
| Med Drop | AF12 |
AF22 |
AF32 |
AF42
|
| High Drop | AF13 |
AF23 |
AF33 |
AF43
|
Some measure of priority and proportional fairness is defined between traffic in different classes. Should congestion occur
between classes, the traffic in the higher class is given priority. Rather than using strict priority queueing, more balanced queue servicing algorithms such as
fair queueing or
weighted fair queuing are likely to be used. If congestion occurs
within a class, the packets with the higher drop precedence are discarded first. To prevent issues associated with
tail drop, the
random early detection (RED) or
weighted random early detection (WRED) algorithms are often used to drop packets.
Usually, traffic policing is required to encode drop precedence. Typically, all traffic assigned to a class is initially given a low drop precedence. As the traffic rate exceeds subscription thresholds, the policer will increase the drop precedence of packets that exceed the threshold.
Class Selector PHB
Prior to DiffServ, IP networks could use the
Precedence field in the
Type of Service (TOS) byte of the IP header to mark priority traffic. The TOS byte and IP precedence wasn't widely used. The IETF agreed to reuse the TOS byte as the DS field for DiffServ networks. In order to maintain backward compatibility with network devices that still use the Precedence field, DiffServ defines the Class Selector PHB.
The Class Selector codepoints are of the form 'xxx000'. The first three bits are the IP precedence bits. Each IP precedence value can be mapped into a DiffServ class. If a packet is received from a non-DiffServ aware router that used IP precedence markings, the DiffServ router can still understand the encoding as a Class Selector codepoint.
Advantages of DiffServ
One advantage of DiffServ is that all the policing and classifying is done at the boundaries between DiffServ clouds. This means that in the core of the Internet, routers can get on with doing the job of routing, and not care about the complexities of collecting payment or enforcing agreements.That is, DiffServ requires no advance setup, no reservation, and no time-consuming end-to-end negotiation for each flow, as with integrated services. This leads DS relatively easy to implement.
Disadvantages of DiffServ
End-to-end and peering problems
One disadvantage is that the details of how individual routers deal with the type of service field is somewhat arbitrary, and it's difficult to predict end-to-end behaviour. This is complicated further if a packet crosses two or more DiffServ clouds before reaching its destination.
From a commercial viewpoint, this is a major flaw, as it means that it's impossible to sell different classes of end-to-end connectivity to end users, as one provider's Gold packet may be another's Bronze. Internet operators could fix this, by enforcing standardised policies across networks, but are not keen on adding new levels of complexity to their already complex
peering agreements. One of the reasons for this is set out below.
Diffserv operation only works if the boundary hosts honour the policy agreed upon. However, this assumption is naive as human beings rarely agree. A host can always tag its own traffic with a higher precedence, even though the traffic doesn't qualify to be handled with that importance. This in fact has already been exploited: Microsoft Windows 2000 always tags its traffic with IP precedence 5, making the traffic classing useless. On the other hand, the network is usually quite within its rights to traffic shape and otherwise ration the amount of network traffic ingress with any particular precedence, and so where this is enforced, overall network traffic flow provided to a host would be reduced by such a tactic.
DiffServ vs. more capacity
The greatest disadvantage of DiffServ is that at the very highest level, some regard it as a technical solution for a technical problem which doesn't exist if the capacity of Internet links is properly engineered.
Since DiffServ is simply a mechanism for deciding which packets to delay or drop at the expense of others in a situation where there isn't enough network capacity, consider that when DiffServ is working by dropping packets selectively, traffic on the link in question must already be very close to saturation. Any further increase in traffic will result in Bronze services being taken out altogether. Since Internet traffic is highly bursty, this is almost certain to happen on a regular basis if traffic on a link is near the limit at which DiffServ becomes needed. (However, the network can be provisioned to provide a minimum Bronze bandwidth, by limiting the maximum amount of higher priority traffic.)
For this reason, many people think that DiffServ will always be inferior to adding sufficient network capacity to avoid packet loss on all classes of traffic.
As of 2003, there's a glut of fibre capacity in most parts of the telecoms market, with it being far easier and cheaper to add more capacity than to employ elaborate DiffServ policies as a way of increasing customer satisfaction. In fact, this is what is generally done in the core of the Internet, which is generally fast and dumb with "
fat pipes" connecting its routers.
However with wireless links, such as
EV-DO, where the air-interface bandwidth is several orders of magnitude less than the backhaul, QoS is being used to efficiently deliver
VoIP packets where not otherwise achievable.
Effects of dropped packets
Dropping packets wastes the resources that have already been expended in carrying these packets so far through the network. In many cases, this traffic will be re-transmitted, causing further bandwidth consumption at the congestion point and elsewhere in the network. To minimize this waste, packets must be discarded as close to the edge of the network as possible, while Diffserv is often implemented throughout a network (edge and core).
Thus, dropping packets amounts to betting that congestion will have resolved by the time the packets are re-sent, or that (if the dropped packets are TCP datagrams) TCP will throttle back transmission rates at the sources to reduce congestion in the network. The TCP congestion avoidance algorithms are subject to a phenomenon called
TCP global synchronization unless special approaches (such as
Random early detection) are taken when dropping TCP packets. In Global Synchronization, all TCP streams tend to build up their transmission rates together, reach the peak throughput of the network, and all crash together to a lower rate as packets are dropped, only to repeat the process.
Delays caused by re-scheduling packets due to Diffserv can cause packets to drop by the IPsec anti-replay mechanism.
DiffServ as rationing
Hence, DiffServ is for most ISPs mainly a way of
rationing customer network utilisation to allow greater
overbooking of their capacity. A good example of this is the use of DiffServ tools to suppress or control
peer-to-peer traffic, because of its ability to saturate customer links indefinitely, disrupting the ISP's
business model which relies on 1%-10% link utilization for most online customers.
Bandwidth Broker
RFC 2638 from
IETF defines the entity of the
Bandwidth Broker in the framework of DiffServ. According to RFC 2638, a Bandwidth Broker is an agent that has some knowledge of an organization's priorities and policies and allocates bandwidth with respect to those policies. In order to achieve an end-to-end allocation of resources across separate domains, the Bandwidth Broker managing a domain will have to communicate with its adjacent peers, which allows end-to-end services to be constructed out of purely bilateral agreements. Bandwidth Brokers can be configured with organizational policies, keep track of the current allocation of marked traffic, and interpret new requests to mark traffic in light of the policies and current allocation. Bandwidth Brokers only need to establish relationships of limited trust with their peers in adjacent domains, unlike schemes that require the setting of flow specifications in
routers throughout an end-to-end path. In practical technical terms, the Bandwidth Broker architecture makes it possible to keep state on an administrative domain basis, rather than at every router and the DiffServ architecture makes it possible to confine per flow state to just the leaf routers.
DiffServ RFC's
RFC 2474—Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers
RFC 2475—An Architecture for Differentiated Services
RFC 2597—Assured Forwarding PHB Group
RFC 3140—Per Hop Behavior Identification Codes (Obsoletes RFC 2836)
RFC 3246—An Expedited Forwarding PHB (Obsoletes RFC 2598)
RFC 4594—Configuration Guidelines for DiffServ Service ClassesFurther Information
Get more info on 'Differentiated Services'.
|
External Link Exchanges
Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:
<a href="http://differentiated_services.totallyexplained.com">Differentiated services Totally Explained</a>
Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned. |